﻿#define _CRT_SECURE_NO_WARNINGS 1
#pragma warning(disable:6031)

#include <stdio.h>
#define u8 unsigned char
#define u16 unsigned short
#define u32 unsigned int

//void menu1()
//{
//	printf("----------- 1、淘宝 -------------\n");
//	printf("----------- 2、京东 -------------\n");
//
//}
//void menu2()
//{
//	printf("----------- A、型号 -- 4G   128G -------------\n");
//	printf("----------- B、型号 -- 8G   128G -------------\n");
//	printf("----------- C、型号 -- 16G  256G -------------\n");
//}
//void taobao(int X)
//{
//		if (X == 'A')
//		{
//			printf("电脑价格为：6888");
//		}
//		else if (X == 'B')
//		{
//			printf("电脑价格为：7888");
//		}
//		else if (X == 'C')
//		{
//			printf("电脑价格为：9900");
//		}
//		else
//		{
//			printf("输入错误");
//		}
//}

//int main()
//{
//	/*unsigned int a = 0x12345678;
//	unsigned int b = (a & 0x000000ffUL) << 24 | (a & 0x0000ff00UL) << 8 | (a & 0x00ff0000UL) >>8  | (a & 0xff000000UL) >> 24;
//	printf("%#x",b);*/
//	
//	/*a = (a >> 4) & ~(~0 << 4);
//	printf("%u",a);*/
//
//	//int a = 7;//0000 0111
//	//a |= (1 << 3);//0000 1111
//	//a &= ~(1 << 3);//1111 0111
//	//printf("%#x",a);
//	//用户输入两个数，打印最大的数--用三目运算
//	/*int a, b;
//	scanf("%d%d",&a,&b);
//	int c = a > b ? a: b;
//	printf("%d",c);*/
//
//	//用户输入三个数，打印最大的数--用三目运算
//	/*int a, b,c;
//	scanf("%d%d%d", &a, &b,&c);
//	int f = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
//	printf("%d", f);*/
//	/*#define u32 unsigned int*/
//	//定义一个变量，u32 a; 将其二进制位4号位变为0，其他位不变写程完成
//	//u32 a = 0x12;//0001 0010
//	//a &= ~(1 << 4);
//	//printf("%#x",a);
//	//定义一个变量，u32 b; 将其二进制位4号位变为1，其他位不变写程完成
//	//u32 a = 0x2;//0000 0010
//	//a |= (1 << 4);
//	//printf("%#x", a);
//	//定义一个变量，u32 c; 将其二进制位4 和 5号位变为00，其他位不变写程完成
//	//u32 a = 0x32;//0011 0010
//	//a &= ~(3 << 4);
//	//printf("%#x", a);
//	//定义一个变量，u32 d; 将其二进制位4 和 5号位变为10，其他位不变写程完成
//	//u32 a = 0x32;//0011 0010
//	//a &= ~(3 << 4);
//	//a |= (1 << 5);//0010 0010
//	//printf("%#x", a);
//	//int a = 0x12;//0x0001 0010
//	//a |= (1 << 3);
//	//printf("%#x\n", a);
//	//a &= ~(1 << 3);
//	//printf("%#x",a);
//	//收到的数据是一个小数; 但是我想要他的整数部分;
//	/*float num = 3.14;
//	int a = (int)num;
//	printf("%d", a);*/
//	//取u16 a = 0xaabb的低八位
//	//取u16 b = 0xccdd的中八位
//	//取u16 c = 0xeeff的高八位
//	//合成一个数据0xeecdbb
//	
//	//u16 a = 0xaabb;
//	//u16 b = 0xccdd;//0x0ccd
//	//u16 c = 0xeeff;
//	//u32 f = (a & 0x00ff) | (b & 0x0ff0) << 4 | (c & 0xff00) << 8;//0xeecd 
//	//printf("%#x\n", f);
//	/*unsigned short int a, b, c;
//	unsigned int d;
//	a = 0xaabb;
//	b = 0xccdd;
//	c = 0xeeff;
//	a = a & 0x00ff;
//	b = (b & 0x0ff0) << 4;
//	c = (c & 0xff00) << 8;
//	d = a | b | c;
//	printf("%#x", d);*/
	/*int num;
	printf("请输入星期数字：");
	scanf("%d",&num);*/
//	///*if (num == 1)
//	//{
//	//	printf("星期一");
//	//}
//	//else if (num == 2)
//	//{
//	//	printf("星期二");
//	//}
//	//else if (num == 3)
//	//{
//	//	printf("星期三");
//	//}
//	//else if (num == 4)
//	//{
//	//	printf("星期四");
//	//}
//	//else if (num == 5)
//	//{
//	//	printf("星期五");
//	//}
//	//else if (num == 6)
//	//{
//	//	printf("星期六");
//	//}
//	//else if(num == 7)
//	//{
//	//	printf("星期日");
//	//}
//	//else
//	//{
//	//	printf("输入错误，请重新输入");
//	//}*/

//	/*int num;
//	printf("请输入成绩：");
//	scanf("%d", &num);*/
//	/*if (num > 0 && num <= 100)
//	{
//		if (num > 0 && num < 60)
//		{
//			printf("D");
//		}
//		else if (num >= 60 && num < 70)
//		{
//			printf("C");
//		}
//		else if (num >= 70 && num < 80)
//		{
//			printf("B");
//		}
//		else if (num >= 80 && num < 90)
//		{
//			printf("A");
//		}
//		else if (num >= 90 && num <= 100)
//		{
//			printf("A+");
//		}
//	}
//	else
//	{
//		printf("输入错误，请重新输入");
//	}*/
//
//}


/*
int main()
{
	//变种水仙花数 - Lily Number：把任意的数字，从中间拆分成两个数字，比如1461 可以拆分成（1和461）, （14和61）, （146和1),
	//如果所有拆分后的乘积之和等于自身，则是一个Lily Number。  //12345 (1和2345）（12和345）（123和45）（1234和1）
	//int Number1, Number2, Number3, Number4, Number5, Number6, Number7, Number8;
	//int i;
	//for (i = 10000; i <= 99999; i++)
	//{
	//	Number1 = i / 10000;
	//	Number2 = i % 10000;
	//	Number3 = i / 1000;
	//	Number4 = i % 1000;
	//	Number5 = i / 100;
	//	Number6 = i % 100;
	//	Number7 = i / 10;
	//	Number8 = i % 10;
	//	if (i == Number1 * Number2 + Number3 * Number4 + Number5 * Number6 + Number7 * Number8)
	//	{
	//		printf("%d ",i);
	//	}
	//}
	int i;
	for (i = 10000; i <= 99999; i++)
	{
		int sum = 0;
		int  j;
		for (j = 10000; j >= 10;j /= 10)
		{
			sum += i / j + i % j;
		}
		if (sum == i)
		{
			printf("%d ", i);
		}
	}
}*/



//int main()
//{
//	int input1;
//	char input2;
//	menu1();
//	printf("请输入你的选择：");
//	scanf("%d", &input1);
//	if (input1 < 1 || input1 > 2)
//	{
//		printf("输入错误\n");
//		return -1;
//	}
//	menu2();
//	printf("请输入你的选择：");
//	scanf(" %c", &input2);
//	if (input1 == 1)
//	{
//		if (input2 == 'A')
//		{
//			printf("电脑价格为：6888");
//		}
//		else if (input2 == 'B')
//		{
//			printf("电脑价格为：7888");
//		}
//		else if (input2 == 'C')
//		{
//			printf("电脑价格为：9900");
//		}
//		else
//		{
//			printf("输入错误");
//		}
//	}
//	
//	if (input1 == 2)
//	{
//		if (input2 == 'A')
//		{
//			printf("电脑价格为：7789");
//		}
//		else if (input2 == 'B')
//		{
//			printf("电脑价格为：6666.9");
//		}
//		else if (input2 == 'C')
//		{
//			printf("电脑价格为：12299");
//		}
//		else
//		{
//			printf("输入错误");
//		}
//	}
//}
//int main()
//{
//	int input1;
//	char input2;
//	menu1();
//	printf("请输入你的选择：");
//	scanf("%d", &input1);
//	if (input1 < 1 || input1 > 2)
//	{
//		printf("输入错误\n");
//		return -1;
//	}
//	menu2();
//	printf("请输入你的选择：");
//	scanf(" %c", &input2);
//	do
//	{
//		switch (input1)
//		{
//		case 1:
//			taobao(input2);
//			break;
//		/*case 2:
//			
//			break;*/
//		default:
//			printf("输入错误，请重新选择\n");
//			break;
//		}
//	} while (input1);
//
//}


	/*int pad;
	int sum = pad = 5; pad = sum++, pad++, ++pad;
	printf("% d\n", pad);*/
	/*u8 a = 15, b = 5, c = 254;
	u8 d = a & b << ~c + 1;
	printf("%d",d);*/
	//1、现在距离国庆节还有12642170860毫秒，那么是几天几小时几分几秒呢？
	// 1秒=1000毫秒 1分=60秒 
	//int sec, min, hour, day;
	//long long hsec = 12642170860;

	//sec = hsec / 1000;

	//min = sec / 60;
	//sec %= 60;

	//hour = min / 60;
	//min %= 60;
	// 
	//day = hour / 24;
	//hour %= 24;

	//printf("距离国庆节还剩%d天%d小时%d分%d秒",day,hour,min,sec);

	


	//2、交换高字节和低字节上的数据，该数据类型为unsigned int类型。
	//示例：unsigned int a = 0XAABBCCDD;
	//交换后：a = 0xDDBBCCAA;
	/*u32 a = 0XAABBCCDD;
	u32 h = (a & 0X000000FFUL) << 24 | (a & 0X00FF0000UL) | (a & 0X0000FF00UL) | (a & 0XFF000000UL) >> 24;
	printf("%#x",h);*/
	//3、u32 a, 输入一个数据放入a中，判断它的第3位是偶数还是奇数
	/*u32 a;
	printf("请输入一个数：");
	scanf("%d",&a);
	if (a >= 100)
	{
		int third = a / 100 % 10;
		if (third % 2 == 0)
		{
			printf("%d为偶数\n", third);
		}
		else
		{
			printf("%d为奇数\n", third);
		}
	}*/
	//4、u8 a, 输入一个数据放入a中，计算这个数据的二进制位中1的个数
		//unsigned char a;
		//int sum = 0;
		//printf("请输入一个数： ");
		//scanf("%hhu", &a); // 注意使用%hhu来读取unsigned char 
		//for (int i = 0; i < 8; i++)
		//{
		//	if ((a & 0x01) == 1)
		//		sum++;
		//		a = a >> 1;
		//}
		//printf("二进制位中1的个数为%d",sum);
	//unsigned char a;
	//int sum = 0;
	//printf("请输入一个数： ");
	//scanf("%hhu", &a); // 注意使用%hhu来读取unsigned char 
	//while (a != 0)
	//{
	//	a = a & (a - 1);
	//	sum++;
	//}
	//printf("二进制位中1的个数为%d", sum);
	//5、使用位运算判断一个数是偶数还是奇数
	//偶数的最低位（即二进制表示的最右边一位）一定是0，而奇数的最低位一定是1。
	//int num;
	//printf("请输入一个数：");
	//scanf("%d", &num);
	//if ((num & 1) == 0)
	//{
	//	printf("%d是偶数",num);
	//}
	//else //num&1!=0
	//{
	//	printf("%d是奇数", num);

	//}

